package com.ruoyi.common.sms.entity;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
* <p>
    * 优惠券信息
    * </p>
*
* @author MrPing
* @since 2022-05-31
*/
@Data
public class YytSmsCoupon implements Serializable {

private static final long serialVersionUID = 1L;

            /**
            * id
            */
            @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

            /**
            * 优惠卷类型[0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券]
            */
    private Integer couponType;

            /**
            * 优惠券图片
            */
    private String couponImg;

            /**
            * 优惠卷名字
            */
    private String couponName;

            /**
            * 数量
            */
    private Integer num;

            /**
            * 减扣类型：【 1：金额，2：折扣 】
            */
    private String reduceType;

            /**
            * 打折
            */
    private BigDecimal discount;


            /**
            * 金额
            */
    private BigDecimal amount;

    /**
     * 扣减剩余金额
     */
    @TableField(exist = false)
    private BigDecimal balance;

            /**
            * 每人限领张数
            */
    private Integer perLimit;

            /**
            * 使用门槛
            */
    private BigDecimal minPoint;

            /**
            * 开始时间
            */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

            /**
            * 结束时间
            */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;

            /**
            * 使用类型[0->全场通用；1->指定分类；2->指定商品]
            */
    private Integer useType;

            /**
            * 备注
            */
    private String note;

            /**
            * 发行数量
            */
    private Integer publishCount;

            /**
            * 已使用数量
            */
    private Integer useCount;

            /**
            * 领取数量
            */
    private Integer receiveCount;

            /**
            * 可以领取的开始日期
            */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime enableStartTime;

            /**
            * 可以领取的结束日期
            */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime enableEndTime;

            /**
            * 优惠码
            */
    private String code;

            /**
            * 可以领取的会员等级[0->不限等级，其他-对应等级]
            */
    private Integer memberLevel;

            /**
            * 发布状态[0-未发布，1-已发布]
            */
    private Integer publish;

    /**
     * 启用状态【0 -> 禁用， 1 -> 启用】
     */
    private Integer startStatus;

    /**
     * 领取记录id
     */
    @TableField(exist = false)
    private String historyId;


    /**
     * 是否已经选择：默认为否
     */
    @TableField(exist = false)
    private Boolean checked = false;

    /**
     * 是否在使用中
     */
    @TableField(exist = false)
    private Integer useMode;


}